package com.bi.service;

import com.bi.vo.ExcelValidationResult;
import com.bi.vo.ImportTaskStatus;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * Excel导入服务接口
 * 
 * @author BI Platform Team
 * @since 1.0.0
 */
public interface ExcelImportService {

    /**
     * 解析Excel文件头部信息
     */
    List<String> parseExcelHeaders(MultipartFile file);

    /**
     * 预览Excel数据
     */
    List<Map<String, Object>> previewExcelData(MultipartFile file, int maxRows);

    /**
     * 导入Excel数据到宽表
     */
    String importExcelData(MultipartFile file, Long wideTableId, String importMode, 
                          Map<String, String> fieldMapping);

    /**
     * 获取导入任务状态
     */
    ImportTaskStatus getImportTaskStatus(String taskId);

    /**
     * 取消导入任务
     */
    boolean cancelImportTask(String taskId);

    /**
     * 验证Excel文件格式
     */
    ExcelValidationResult validateExcelFile(MultipartFile file, Long wideTableId);
}